/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package za.ac.cput.garethc.chpt2.conf;

import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.context.annotation.Bean;
import za.ac.cput.garethc.chpt2.alphabet.alphabet.Alphabet;
import za.ac.cput.garethc.chpt2.alphabet.alphabet.impl.AlphabetImpl;
import za.ac.cput.garethc.chpt2.arraycalculator.arraycalc.ArrayCalc;
import za.ac.cput.garethc.chpt2.arraycalculator.arraycalc.impl.ArrayCalcImpl;
import za.ac.cput.garethc.chpt2.bmicalc.bmicalc.BMICalc;
import za.ac.cput.garethc.chpt2.bmicalc.bmicalc.impl.BMICalcImpl;
import za.ac.cput.garethc.chpt2.charsort.CharSort;
import za.ac.cput.garethc.chpt2.charsort.impl.CharSortImpl;
import za.ac.cput.garethc.chpt2.fuelconsumption.fuelconsumption.FuelConsumption;
import za.ac.cput.garethc.chpt2.fuelconsumption.fuelconsumption.impl.FuelConsumptionImpl;
import za.ac.cput.garethc.chpt2.intsort.IntSort;
import za.ac.cput.garethc.chpt2.intsort.impl.IntSortImpl;
import za.ac.cput.garethc.chpt2.nullreturn.nullreturn.NullReturn;
import za.ac.cput.garethc.chpt2.nullreturn.nullreturn.impl.NullReturnImpl;
import za.ac.cput.garethc.chpt2.objectreturn.objectreturn.ObjectReturn;
import za.ac.cput.garethc.chpt2.objectreturn.objectreturn.impl.ObjectReturnImpl;
import za.ac.cput.garethc.chpt2.stringreturn.stringreturn.StringReturn;
import za.ac.cput.garethc.chpt2.stringreturn.stringreturn.impl.StringReturnImpl;
import za.ac.cput.garethc.chpt2.throwerror.throwerror.ThrowError;
import za.ac.cput.garethc.chpt2.throwerror.throwerror.impl.ThrowErrorImpl;

/**
 *
 * @author Gareth
 */
@Configurable
public class AppConfig 
{
    @Bean (name = "alpha1")
    public Alphabet alpha()
    {
        return new AlphabetImpl();
    }
    
    @Bean (name = "arrcalc1")
    public ArrayCalc arrcalc()
    {
        return new ArrayCalcImpl();
    }
    
    @Bean (name = "bmicalc1")
    public BMICalc bmicalc()
    {
        return new BMICalcImpl();
    }
    
    @Bean (name="charsort1")
    public CharSort charsort()
    {
        return new CharSortImpl();
    }
    
    @Bean (name = "fuelcons1")
    public FuelConsumption fuelConsumption()
    {
        return new FuelConsumptionImpl();
    }
    
    @Bean (name="intsort1")
    public IntSort intsort()
    {
        return new IntSortImpl();
    }
    
    @Bean (name = "nullRet1")
    public NullReturn nullReturn ()
    {
        return new NullReturnImpl();
    }
    
    @Bean (name = "stringret1")
    public StringReturn strret()
    {
        return new StringReturnImpl();
    }
    
    @Bean (name = "objret1")
    public ObjectReturn objectret()
    {
        return new ObjectReturnImpl();
    }
    
    @Bean (name = "err1")
    public ThrowError throwErr()
    {
        return new ThrowErrorImpl();
    }
}
